package com.saep.logica;

import com.saep.modelo.Empresa;
import com.saep.persistencia.IEmpresaDAO;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author Estudiante
 */
@Stateless
public class LogicaEmpresa implements LogicaEmpresaLocal {

    @EJB
    private IEmpresaDAO empresaDAO;

    @Override
    public void registrarEmpresa(Empresa empresa) throws Exception {
        if (empresa == null) {
            throw new Exception("La empresa no tiene información");
        }
        if (empresa.getNumeroempresa() == null) {
            throw new Exception("El numero de la empresa es obligatorio");
        }
        Empresa objEmpresa = empresaDAO.consultarPorNumeroEmpresa(empresa.getNumeroempresa());
        if (objEmpresa != null) {
            throw new Exception("La empresa ya se encuentra registrada");
        }
        if (empresa.getNombreempresa() == null || empresa.getNombreempresa().equals("")) {
            throw new Exception("el nombre es obligatorio");
        }

    }

    @Override
    public void modificarEmpresa(Empresa empresa) throws Exception {
        if (empresa == null) {
            throw new Exception("La empresa no tiene información");
        }
        if (empresa.getNumeroempresa() == null) {
            throw new Exception("El numero de la empresa es obligatorio");
        }
        Empresa objEmpresa = empresaDAO.consultarPorNumeroEmpresa(empresa.getNumeroempresa());
        if (objEmpresa == null) {
            throw new Exception("La empresa no se encuentra registrada");
        }
        if (empresa.getNombreempresa() == null || empresa.getNombreempresa().equals("")) {
            throw new Exception("el nombre es obligatorio");
        }
    }

    @Override
    public void eliminarEmpresa(Empresa empresa) throws Exception {
        Empresa objEmpresa = empresaDAO.consultarPorNumeroEmpresa(empresa.getNumeroempresa());
        if (objEmpresa == null) {
            throw new Exception("El codigo de la empresa a eliminar no existe");
        }
        empresaDAO.eliminarEmpresa(objEmpresa);
    }

    @Override
    public List<Empresa> consultarEmpresas() throws Exception {
        return empresaDAO.consultarEmpresas();
    }

    @Override
    public Empresa consultarPorNumeroEmpresa(Integer numeroEmpresa) throws Exception {
        if (numeroEmpresa == null) {
            throw new Exception("La empresa no existe");
        }
        return empresaDAO.consultarPorNumeroEmpresa(numeroEmpresa);

    }
}